# 安装依赖包（需提前执行）
# pip install pycryptodome  # 加密算法依赖
# pip install python-alipay-sdk  # 支付宝SDK

from alipay import AliPay  # 导入支付宝SDK核心类
import time  # 导入时间模块（可用于生成唯一订单号）

# 支付宝公钥（用于验证支付回调签名）
alipay_public_key_string = """-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhrSVTm/xYLAQl8lJf04G4ac1if/FOS1clKoegNhhLvLN+egPyH+ST+b9bm61tD+ety8LnYEjbtsh17fTedMcTHOIL92edFI3jrGSo52fueeuyWGwzqzzGKnmkN99IgkoH6Bn2oXdtoXCJ3lhFNV5PDuC4w4qLaDfqZlzr16OQ0DSK9ASEC286szDkx/Luauc6hLjay66Ct4LjNjWpFnJ3GmVwZUMZIiqAJ/5MQY+FDqpbRaho/AnDB13LbRll0B4K2EWxOuByyTFrbCYBq6rrboDQyiRwOCFd0bFaCa6XOB0KymKBJdRlL/u3Yewe8CquAveGKbjvOUuf3s9dLDe/QIDAQAB
-----END PUBLIC KEY-----"""

# 应用私钥（用于生成支付签名）
app_private_key_string = """-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAj188kRuiSaxo7RtTwHOamNpgb5wfOt+gAQ5h87hkEllyQWrGeSbAE/3ViETJswd+T4skuT4nSxAJgET4t2GqyOjyk16ssxCAxakAF5L8dMqoUSkRwGbHUdAr/84AUGetTe9AVGBtuP3wB68ZXYFbxaKSV4NYU5Zn6YIeFPOloldmE3G9d7OWStTg2dM6dLrG9G6PDoWaniUnCi8qNbID3JouQnS/5iL4fd39Jxjdpsldf3pfZi8Mwo1gxqphONwnNekW5b7eNFsQBV+2Um4AMwRM3bWaDE/jBhCkCLAFVSJuFHFriTNjZW5onxXbkpSkwubnmwpDaYq1op8cBux3ywIDAQABAoIBAQCAxGuUdHpMqyHOGyYcinfGYxQMCe9upByD9lP5XpnadSWOJYU+mJQZIHjhG88AEXHbpUAFdBI8c5nk741mvrxyF+6Od5Cqft75KDFh+uztRHrp8fX0lRrdmxd5d56GmKdpgMGJRtYlOUWU0Sn59k3jcoD3QotY/5QygF/eN3qDE5WQzvTLxWTI3Nl9YRfYL+G7e/6wQmv5317wzKa88Z8CTVccTH0IeyW+NBcM8czSijPNlwDOty50s3orgoGKP+UGmlcsEq4OQtTH6dWwxi/nU98DPcMwqhMhUl4fw0WVVvmWL7F3av8i/hXUDu/D3UkPR1E5xtfl3h0A7mVum5QZAoGBAO77bB+dwKKC9144GUs7yr8LszfbI9sTTz0Z8YFvQI/1qJJl33GbQJP3KOKUT8+eFDv+0E55eragdPnOJorXhyl8awc9F1wFS+U5QbeXoImPb3Kxga+8MsMgEMPrAoVUBbNRk6UX07Pb+RJ5qcECNlLYxWUdQBImA4L/awlwJKKvAoGBAJmU3mAPBrVZy+ujd8KM3as2Xv89pCR8lgUlf7r90x+j9tFCOxacBdVlWGCLK6ciVUW5UFpSzXqGEScSaoL6/iPg0ieNOo4wHdmZLAXlAyxokDo/JQjhvx8KN71HLSX9cp9vLV4ZmrPLfeIumsI7YUKozKrIP5IjyHVjqNAkNXOlAoGAWgdrfymdtVsjN2Jo3PfEdF5DAMrUYiaPFlScr4cqylDgVW59U74KAPP+egUnX+6MbuGatcV73irqhmUMDggNyiot48c28pqoMc11HWXIu6nGcW2/jmWWtf1xc20oQPQbRad4uJwWS86VsUkWEzjzIBi7nFD9nxilAAea2i5eDs8CgYBdYPVgRGKYyxNAn3CGeq2glvtlh24QvStdz7H82K2QNFoyW2mf0pd9axQ0BwowoaBlN0pS0Lucfn1ZW0olf0QcPmqon6b1ou3TSt1IbDjkvGLM922mG9PfpI/FZsxdp98Ubz2PVFQKc3SDnEB+TipRpF5kjEKSsW0FauXOP+W7/QKBgQCm9PDF4jB1aHFxfAoo1lHs3Z68o+M/+yBhHUobdM1eD3BzqKkTfzF0UvwyS7Cv2q3GRFAytf904nys4yusotEWH7uNZ3GnGDatttLbLGgk5XRjzetbY1oa6zHIugUOUqvHt2rD9xbV7vUZElY84C9INxIc3TbRxe2a4/RuJYF8fw==
-----END RSA PRIVATE KEY-----"""

def get_pay(out_trade_no, total_amount, return_url):
    print(1)
    """
    生成支付宝支付链接
    :param out_trade_no: 商户订单号（需保证唯一性）
    :param total_amount: 支付金额（单位：元，建议保留两位小数）
    :param return_url: 支付成功后的回调地址
    :return: 支付宝支付页面URL
    """
    # 初始化支付宝SDK实例
    alipay = AliPay(
        appid="9021000149697375",  # 支付宝应用ID（沙箱环境示例值）
        app_notify_url=None,  # 异步通知地址（None表示使用默认）
        app_private_key_string=app_private_key_string,  # 应用私钥
        alipay_public_key_string=alipay_public_key_string,  # 支付宝公钥
        sign_type="RSA2",  # 签名算法（推荐RSA2，安全性更高）
    )

    # 生成支付宝页面支付请求参数
    order_string = alipay.api_alipay_trade_page_pay(
        out_trade_no=out_trade_no,  # 商户订单号（需唯一，建议使用时间戳+随机数生成）
        total_amount=str(total_amount),  # 支付金额（转换为字符串，避免精度问题）
        subject="测试",  # 订单标题（显示在支付宝支付页面）
        return_url=return_url + '?t=' + out_trade_no,  # 支付成功后的同步回调地址（带订单号参数）
        notify_url=return_url + '?t=' + out_trade_no  # 支付成功后的异步通知地址（带订单号参数）
    )

    # 拼接支付宝网关URL，生成可访问的支付链接
    return 'https://openapi-sandbox.dl.alipaydev.com/gateway.do?' + order_string